#include "board_relay.h"
#include "main.h"

void board_relay_slow_down_ctrl(uint8_t floor, GPIO_PinState state)
{
    switch (floor) {
    case 0:
        HAL_GPIO_WritePin(Y8_GPIO_Port, Y8_Pin, state);
        break;

    case 1:
        HAL_GPIO_WritePin(Y9_GPIO_Port, Y9_Pin, state);
        break;

    case 2:
        HAL_GPIO_WritePin(Y10_GPIO_Port, Y10_Pin, state);
        break;

    case 3:
        HAL_GPIO_WritePin(Y11_GPIO_Port, Y11_Pin, state);
        break;

    case 4:
        HAL_GPIO_WritePin(Y12_GPIO_Port, Y12_Pin, state);
        break;

    default:
        break;
    }
}

void board_relay_flat_floor_ctrl(uint8_t floor, GPIO_PinState state)
{
    switch (floor) {
    case 0:
        HAL_GPIO_WritePin(Y1_GPIO_Port, Y1_Pin, state);
        break;

    case 1:
        HAL_GPIO_WritePin(Y2_GPIO_Port, Y2_Pin, state);
        break;

    case 2:
        HAL_GPIO_WritePin(Y3_GPIO_Port, Y3_Pin, state);
        break;

    case 3:
        HAL_GPIO_WritePin(Y4_GPIO_Port, Y4_Pin, state);
        break;

    case 4:
        HAL_GPIO_WritePin(Y5_GPIO_Port, Y5_Pin, state);
        break;

    default:
        break;
    }
}

void board_relay_sul_ctrl(GPIO_PinState state)
{
    HAL_GPIO_WritePin(Y6_GPIO_Port, Y6_Pin, state);
}

void board_relay_oc_ctrl(GPIO_PinState state)
{
    HAL_GPIO_WritePin(Y7_GPIO_Port, Y7_Pin, state);
}

void board_relay_slow_down_close(void)
{
    board_relay_slow_down_ctrl(0, GPIO_PIN_RESET);
    board_relay_slow_down_ctrl(1, GPIO_PIN_RESET);
    board_relay_slow_down_ctrl(2, GPIO_PIN_RESET);
    board_relay_slow_down_ctrl(3, GPIO_PIN_RESET);
    board_relay_slow_down_ctrl(4, GPIO_PIN_RESET);
}

void board_relay_flat_floor_close(void)
{
    board_relay_flat_floor_ctrl(0, GPIO_PIN_RESET);
    board_relay_flat_floor_ctrl(1, GPIO_PIN_RESET);
    board_relay_flat_floor_ctrl(2, GPIO_PIN_RESET);
    board_relay_flat_floor_ctrl(3, GPIO_PIN_RESET);
    board_relay_flat_floor_ctrl(4, GPIO_PIN_RESET);
}

